#ifndef LIBCOM_SRC_XVALUE_H
#define LIBCOM_SRC_XVALUE_H
#include "data.h"
#include <string>

namespace libxcom {
template<class T>
class XValue
{
public:
    XValue(const T& val, const std::string& expr = "");
    XValue();

    // 赋值运算符重载，支持 a = 5 的赋值操作
    XValue& operator=(const T& val);
    const T& operator()() const;
    operator T() const;

    // 获取私有变量的引用（可选）
    T& get();
    const T& get() const;

private:
    T t_;
    std::string expr_;
};
} // namespace libxcom
#endif // LIBCOM_SRC_XVALUE_H
